using System.Threading.Tasks;

namespace Framework.Data.Config
{
    public interface IConfigContainer
    {
        void DeserializeConfig();

        Task DeserializeConfigAsync();

        C GetConfig<C>(string pKey) where C : ConfigBase;

        C GetConfig<C>(int pIndex) where C : ConfigBase;

        IConfigBase GetConfig(string pKey);

        IConfigBase GetConfig(int pIndex);
    }
}
